# SPDX-License-Identifier: Apache-2.0

zephyr_syscall_header(${ZEPHYR_BASE}/include/zephyr/drivers/gpio.h)

zephyr_library()

# zephyr-keep-sorted-start
zephyr_library_sources_ifdef(CONFIG_GPIO_AD559X     gpio_ad559x.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_ADP5585    gpio_adp5585.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_ADS1X4S0X  gpio_ads1x4s0x.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_ALTERA_PIO gpio_altera_pio.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_AMBIQ      gpio_ambiq.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_ANDES_ATCGPIO100 gpio_andes_atcgpio100.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_AW9523B    gpio_aw9523b.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_AXP192     gpio_axp192.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_BCM2711    gpio_bcm2711.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_BD8LB600FS gpio_bd8lb600fs.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_BRCMSTB    gpio_brcmstb.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_CC13XX_CC26XX gpio_cc13xx_cc26xx.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_CC23X0     gpio_cc23x0.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_CC32XX     gpio_cc32xx.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_CMSDK_AHB  gpio_cmsdk_ahb.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_CY8C95XX   gpio_cy8c95xx.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_DAVINCI    gpio_davinci.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_DW         gpio_dw.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_EFINIX_SAPPHIRE    gpio_efinix_sapphire.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_EMUL       gpio_emul.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_ENE_KB106X gpio_ene_kb106x.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_ENE_KB1200 gpio_ene_kb1200.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_EOS_S3     gpio_eos_s3.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_ESP32      gpio_esp32.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_FXL6408    gpio_fxl6408.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_GD32       gpio_gd32.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_GECKO      gpio_gecko.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_GRGPIO2    gpio_grgpio2.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_IMX        gpio_imx.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_INFINEON_CAT1 gpio_ifx_cat1.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_INTEL      gpio_intel.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_IPROC      gpio_iproc.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_ITE_IT51XXX gpio_ite_it51xxx.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_ITE_IT8801 gpio_ite_it8801.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_ITE_IT8XXX2 gpio_ite_it8xxx2.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_ITE_IT8XXX2_V2 gpio_ite_it8xxx2_v2.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_KSCAN_ITE_IT8XXX2 gpio_kscan_ite_it8xxx2.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_LITEX      gpio_litex.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_LMP90XXX   gpio_lmp90xxx.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_LPC11U6X   gpio_lpc11u6x.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_MAX14906   gpio_max14906.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_MAX14916   gpio_max14916.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_MAX14917   gpio_max14917.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_MAX22017   gpio_max22017.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_MAX2219X   gpio_max2219x.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_MAX32      gpio_max32.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_MCHP_MEC5  gpio_mchp_mec5.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_MCHP_MSS       gpio_mchp_mss.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_MCP230XX   gpio_mcp230xx.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_MCP23SXX   gpio_mcp23sxx.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_MCP23XXX   gpio_mcp23xxx.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_MCUX       gpio_mcux.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_MCUX_IGPIO gpio_mcux_igpio.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_MCUX_LPC   gpio_mcux_lpc.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_MCUX_RGPIO gpio_mcux_rgpio.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_MFXSTM32L152 gpio_mfxstm32l152.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_MMIO32     gpio_mmio32.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_MSPM0      gpio_mspm0.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_NCT38XX    gpio_nct38xx.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_NCT38XX    gpio_nct38xx_port.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_NCT38XX_ALERT  gpio_nct38xx_alert.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_NEORV32    gpio_neorv32.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_NPCX       gpio_npcx.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_NPM13XX    gpio_npm13xx.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_NPM2100    gpio_npm2100.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_NPM6001    gpio_npm6001.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_NRFX       gpio_nrfx.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_NUMAKER    gpio_numaker.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_NUMICRO    gpio_numicro.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_NXP_S32    gpio_nxp_s32.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_PCA6416    gpio_pca6416.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_PCA953X    gpio_pca953x.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_PCA95XX    gpio_pca95xx.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_PCAL64XXA  gpio_pcal64xxa.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_PCA_SERIES gpio_pca_series.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_PCF857X    gpio_pcf857x.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_PSOC6      gpio_psoc6.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_RA_IOPORT  gpio_renesas_ra_ioport.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_RCAR       gpio_rcar.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_RENESAS_RX gpio_renesas_rx.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_RENESAS_RZ gpio_renesas_rz.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_RENESAS_RZA2M  gpio_renesas_rza2m.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_RP1        gpio_rp1.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_RPI_PICO   gpio_rpi_pico.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_RT1718S    gpio_rt1718s.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_RT1718S    gpio_rt1718s_port.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_RTS5912    gpio_rts5912.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_RV32M1     gpio_rv32m1.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_RZT2M    gpio_rzt2m.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_SAM        gpio_sam.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_SAM0       gpio_sam0.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_SAM4L      gpio_sam4l.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_SEDI    gpio_sedi.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_SI32       gpio_si32.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_SIFIVE     gpio_sifive.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_SILABS_SIWX91X gpio_silabs_siwx91x.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_SILABS_SIWX91X_UULP gpio_silabs_siwx91x_uulp.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_SMARTBOND  gpio_smartbond.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_SN74HC595  gpio_sn74hc595.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_SNPS_CREG  gpio_creg_gpio.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_STELLARIS  gpio_stellaris.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_STM32      gpio_stm32.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_STMPE1600  gpio_stmpe1600.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_SX1509B    gpio_sx1509b.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_SY1XX      gpio_sy1xx.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_TCA6424A   gpio_tca6424a.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_TELINK_B91 gpio_b91.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_TEST       gpio_test.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_TLE9104    gpio_tle9104.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_WCH_GPIO   wch_gpio_ch32v00x.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_XEC        gpio_mchp_xec.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_XEC_V2     gpio_mchp_xec_v2.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_XLNX_AXI   gpio_xlnx_axi.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_XLNX_PS    gpio_xlnx_ps.c gpio_xlnx_ps_bank.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_XMC4XXX    gpio_xmc4xxx.c)
zephyr_library_sources_ifdef(CONFIG_LPGPIO_ESP32    gpio_esp32_lp.c)
# zephyr-keep-sorted-stop

# zephyr-keep-sorted-start
zephyr_library_sources_ifdef(CONFIG_GPIO_HOGS       gpio_hogs.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_SHELL      gpio_shell.c)
zephyr_library_sources_ifdef(CONFIG_USERSPACE   gpio_handlers.c)
# zephyr-keep-sorted-stop

if (CONFIG_GPIO_EMUL_SDL)
  zephyr_library_sources(gpio_emul_sdl.c)
  if (CONFIG_NATIVE_APPLICATION)
    zephyr_library_sources(gpio_emul_sdl_bottom.c)
  else()
    target_sources(native_simulator INTERFACE gpio_emul_sdl_bottom.c)
  endif()
endif()

if(CONFIG_GPIO_SC18IM704)
  zephyr_library_include_directories(${ZEPHYR_BASE}/drivers)
  zephyr_library_sources(gpio_sc18im704.c)
endif()
